package com.project.service;


import com.project.bean.CutPageBean;
import com.project.bean.UserBean;

import java.time.LocalDate;
import java.util.List;

/**
 * 用户业务接口
 */
public interface IUserService {
    /**
     * 添加用户
     * @param user 用户对象
     * @return 添加用户ID
     */
    public int add(UserBean user);

    /**
     * 删除用户
     * @param id 用户ID
     */
    public void del(int id);

    /**
     * 按ID修改密码
     * @param id 用户ID
     * @param pwd  新密码
     */
    public void update(int id,String pwd);

    /**
     * 查询所有用户
     * @return 用户集合
     */
    public List<UserBean> findAll();

    /**
     * 按姓名模糊查询
     * @param name 姓名
     * @return 用户集合
     */
    public List<UserBean> findByName(String name);

    /**
     * 按生日查询
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 用户集合
     */
    public List<UserBean> findByBirthday(LocalDate startDate,
                                         LocalDate endDate);

    /**
     * 批量添加
     * @param list 要添加的用户集合
     */
    public void addMore(List<UserBean> list);

    /**
     * 批量删除
     * @param idArray 用户ID数组
     */
    public void delMore(int[] idArray);

    /**
     * 动态条件查询
     * @param name 姓名
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 用户集合
     */
    public List<UserBean> findByItem(
            String name,LocalDate startDate,LocalDate endDate
    );

    /**每页显示记录数*/
    public int PAGESIZE = 3;
    /**
     * 分页查询所有用户
     * @param pageNO 页码
     * @return 分页对象
     */
    public CutPageBean<UserBean> cutAll(int pageNO);
}
